﻿Public Partial Class xLogin
    Inherits CoreClass


#Region "Các hàm tự viết"

    ' Kiểm tra dữ liệu nhập trên Form
    Public Function chkField() As Boolean
        Dim flag = True
        If txtUserName.Text = "" Then
            flag = False
            objAlert.ErrorBox(Page, "Hãy nhập giá trị cho mục Tên đăng nhập.")
            Return flag
        End If
        If Not objFunction.IsAlphaNumeric(txtUserName.Text) Then
            flag = False
            objAlert.ErrorBox(Page, "Tên đăng nhập chỉ bao gồm các chữ cái: A-Z, a-z và số 0-9.")
            Return flag
        End If
        If txtPassword.Text = "" Then
            flag = False
            objAlert.ErrorBox(Page, "Hãy nhập Password.")
            Return flag
        End If
        If Not objFunction.IsAlphaNumeric(txtPassword.Text) Then
            flag = False
            objAlert.ErrorBox(Page, "Password chỉ bao gồm các chữ cái: A-Z, a-z và số 0-9.")
            Return flag
        End If
        Return flag
    End Function

#End Region


#Region "Các sự kiện của grid và Button"

    Private Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim user As String = ""
        Dim pass As String = ""

        user = txtUserName.Text
        pass = txtPassword.Text

        ' Goi ham kiem tra Form
        If Not chkField() Then
            Exit Sub
        End If

        Try
            sql = "spi_Login "
            sql &= objFunction.FieldCheck(user) & ", "
            sql &= objFunction.FieldCheck(objFunction.Hash(pass))
            'Response.Write(sql)
            'Response.End()

            objData.ExeReader(sql)
            If objData.dataRead.Read Then
                'Kiểm tra nhóm có đang hoạt động
                If objData.dataRead("GroupStt").Equals("0") Then
                    objAlert.ErrorBox(Page, "Nhóm của người dùng của bạn đã bị khoá.")
                    Exit Sub
                    'Kiểm tra ng dùng có đang hoạt động
                ElseIf objData.dataRead("UserStt") = 0 Then
                    objAlert.ErrorBox(Page, "Tài khoản của bạn đã bị khoá.")
                    Exit Sub
                Else
                    'Đăng nhập thành công
                    Session("UserId") = objData.dataRead("UserID")
                    Session("GroupId") = objData.dataRead("GroupID")
                    Session("UserFullname") = objData.dataRead("UserFullName")
                    Session("SessionId") = Guid.NewGuid().ToString
                    Session("UserImg") = objData.dataRead("UserImg")
                    objFunction.writeLog(Session("UserId"), 3, "Login thành công")
                    If Request.QueryString("redirect") = Nothing Then
                        Response.Redirect("/Inside/Default.aspx")
                    Else
                        Response.Redirect(Request.QueryString("redirect").Replace("|", "?"))
                    End If
                End If
            Else
                objAlert.ErrorBox(Page, "Tên truy nhập hoặc mật khẩu không đúng.")
                Exit Sub
            End If
        Catch ex As Exception
            If objConfig.Developer.Equals("1") Then
                objAlert.ErrorBox(Page, "File: " & (New System.Diagnostics.StackTrace).GetFrame(0).GetMethod.DeclaringType.Name & _
                                  " --- Function: " & (New System.Diagnostics.StackTrace).GetFrame(0).GetMethod.Name & _
                                  " --- Mess: " & ex.Message.Replace("'", """"))
            Else
                objAlert.ErrorBox(Page, "Lỗi kỹ thuật, hãy thông báo lại với Admin, xin cảm ơn.")
            End If
            'objAlert.ErrorBox(Page, ex.Message)
        End Try
        
    End Sub

#End Region
End Class